// 从express导入几个对象
import { Request,Response,NextFunction } from 'express';

// 假设中间件的作用是输出请求的地址
export const requestUrl = (
  req:Request,
  res:Response,
  next:NextFunction
) => {
  // 控制台输出req的地址,也就是请求的地址
  console.log(req.url);
  // 在中间件里要执行next()函数，这个请求才会继续被其他的中间件和接口处理器去处理，如果不写next()请求会一直卡在那里
  next();
}
// 把这个公共中间件给需要的路由

// 默认异常处理器
// 参数：any,Request,Response,NextFunction
export const defaultErrorHandler = (
  error:any,
  req:Request,
  res:Response,
  next:NextFunction
) => {
  // 状态码:数字             
  let statusCode:number;
  // 信息：字符串 
  let message:string;
  //异常处理
  switch (error.message) {
    default: 
    statusCode = 500;
    message = '服务出问题~~~';
    break;
  }
  //响应
  res.status(statusCode).send({message});
  
}
//在index.ts中导入